//线上相关讨论摘抄， 关于main方法抛出的Exception
import java.io.IOException;

class TryCatch {    
	public static void main(String[] args) {        
		try {            
			throw new IOException("IOException");
		} catch (IOException e) {            
			System.out.println(e.getMessage());
		}    
	}
}  // 因为处理了异常，所以可以编译，可以运行


class CheckedExceptionWithThrows {    
	public static void main(String[] args) throws IOException {
		throw new IOException("IOException");
	}
}   //  只是（向上/外）抛出了异常，所以可以编译，运行时出错


class CheckedExceptionWithoutThrows {
	public static void main(String[] args) {
		throw new IOException("IOException");
	}
}   //产生了I/O异常(即非RuntimeException)，并未处理，也未抛，所以编译时就出错了


class RuntimeExceptionWithoutThrows{
	public static void main(String[] args) {
		throw new RuntimeException("RuntimeException");
	}
} //产生的是RuntimeException，所以不用处理或抛，仍然可以通过编译，但运行时出错

//总之，有异常不处理，早（编译时）晚（运行时）要出错的